﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;

namespace WMSSystem.DYB
{
    /// <summary>
    /// 仓库管理实体
    /// </summary>
    public class WarehouseManagement:AuditedAggregateRoot<Guid>
    {
        /// <summary>
        /// 仓库编码
        /// </summary>
        [Description("仓库编码")]
        [MaxLength(100)]
        public string Code { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        [Description("仓库名称")]
        [MaxLength(100)]
        public string Name { get; set; }

        /// <summary>
        /// 仓库容量/m2
        /// </summary>
        [Description("仓库容量/m2")]
        public int Capacity { get; set; }
        /// <summary>
        /// 已使用容量
        /// </summary>
        [Description("已使用容量/m2")]
        public int UseCapacity { get; set; }
        /// <summary>
        /// 仓库地址
        /// </summary>
        [Description("仓库地址")]
        [MaxLength(100)]
        public string Addr { get; set; }

        /// <summary>
        /// 库管部门(外键)
        /// </summary>
        [Description("库管部门(外键)")]
        public Guid DepartmentId { get; set; }

        /// <summary>
        /// 仓库主管(外键)
        /// </summary>
        [Description("仓库主管(外键)")]
        public Guid WarehouseSupervisorId { get; set; }

        /// <summary>
        /// 库位数量
        /// </summary>
        [Description("库位数量")]
        public int Num { get; set; }

        /// <summary>
        /// 仓库状态
        /// </summary>
        [Description("仓库状态")]
        public bool State { get; set; }

        /// <summary>
        /// 仓库锁定
        /// </summary>
        [Description("仓库锁定")]
        public bool LockState { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [Description("备注")]
        [MaxLength(255)]
        public string? Remark { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        [Description("联系电话")]
        [MaxLength(11)]
        public string? Phone { get; set; }
        /// <summary>
        /// 类型
        /// </summary>
        [Description("类型")]
        [MaxLength (50)]
        public string Type { get; set; }
    }
}
